---
title: SectionMethods 框方法
icon: Layers
relatedFile: app/src/core/stage/stageManager/basicMethods/SectionMethods.tsx
---

该服务专注于管理和查询项目舞台中的Section实体及其与其他实体的关系。它提供了一系列方法来处理集合的层级结构、包含关系以及基于几何位置的查询。

## 获取关系

### `getFatherSections(entity: Entity)`

获取一个实体直接所属的所有父级集合。

### `getFatherSectionsList(entity: Entity)`

获取一个实体所有层级的父级集合列表，从最深层到最浅层排序。

### `isEntityInSection(entity: Entity, section: Section)`

判断一个实体是否包含在某个集合内部，支持多层嵌套判断。

### `isEntityInSection_fake(entity: Entity, section: Section)`

通过碰撞盒检测，判断一个实体的几何区域是否与某个集合的几何区域发生碰撞，不考虑实际的包含关系。

## 层级处理

### `deeperSections(sections: Section[])`

从一组集合中，筛选并返回那些嵌套最深的（即没有被其他同组集合完全包含的）集合。

### `shallowerSection(sections: Section[])`

从一组集合中，找出并返回最外层（即没有父级集合）的集合。

### `shallowerNotSectionEntities(entities: Entity[])`

从一组实体中，返回最外层的集合实体，以及未被任何集合包含的非集合实体。

### `isTreePack(rootNode: Section)`

检查一个集合及其子实体是否构成一个有效的树形嵌套结构（无循环引用）。

### `getSectionMaxDeep(section: Section)`

计算一个集合的最大嵌套深度。

## 查询

### `getSectionsByInnerLocation(location: Vector)`

根据一个点的位置，获取包含该点的所有集合，优先返回最深层（最小）的集合。

### `getAllEntitiesInSelectedSectionsOrEntities(selectedEntities: Entity[])`

根据选中的实体（可能包含集合），获取所有被选中集合内部包含的实体，以及选中的非集合实体本身。

### `getSortedSectionsByZ(sections: Section[])`

根据集合的顶部Y坐标对集合进行排序。
